#ifndef DATASHOW_H
#define DATASHOW_H

#include <QWidget>
#include <QTextEdit>
#include <QJsonDocument>    // 用于将JSON字符串解析为QJsonDocument对象
#include <QJsonObject>      // 用于处理JSON对象
#include <QJsonParseError>  // 用于捕获JSON解析错误
#include <QRandomGenerator>  // 用于生成随机数
#include <QPaintEvent>
#include <QPainter>         // QPainter头文件
#include <QPixmap>          // QPixmap头文件
#include <QDir>
#include <QTimer>
#include <QList>

namespace Ui {
class datashow;
}

class datashow : public QWidget
{
    Q_OBJECT

public:
    explicit datashow(QWidget *parent = nullptr);
    ~datashow();

public slots:
    void displayMessage(const QString &message); // 声明自定义信号处理槽函数

public:
    void paintEvent(QPaintEvent *event) override; // 添加重写声明
    void setStatInterval(int seconds); //统计间隔的公共函数

private slots:
    void exitButton_clicked(); // 声明退出按钮的槽函数
    void calculateStatistics(); // 新增统计计算槽函数
    void updateWiseSaying(); // 心灵寄语更新函数

private:
    Ui::datashow *ui;
    QMap<QString, QTextEdit*> m_textEditMap; // 声明成员变量
    QPixmap m_background; // 添加背景图片成员

    QTimer *m_statTimer;
    int m_statInterval = 60000; // 定时器时长
    QMap<QString, QList<double>> m_sensorData; // 存储历史数据
    QMap<QString, double> m_lastAvgValues;    // 存储上一次的平均值

    int datashow_logRefreshCount = 0;      // 日志刷新次数计数器
    const int DataShow_MAX_REFRESH_COUNT = 30; // 最大刷新次数（超出则清理）

    QStringList m_wiseSayings; // 名言列表实现函数
    QString generateAdvice(const QMap<QString, double>& avgValues); // 智能建议实现函数
};

#endif // DATASHOW_H
